Various types of processes, such as business processes, can be modeled and controlled by a computer-based system. For example, a process modeling engine can be used to automate a business process by controlling the activities associated with the business process from start to finish. Business processes can range from a simple two-step process to a complex process involving a large number of steps and parallel paths of execution. Exemplary process modeling engines can control the process of approving a requisition, approving a hiring decision, or processing an expense report submitted by an employee.
In some processes, there are situations in which the flow of activities does not proceed linearly from start to finish. Instead, it may be necessary to direct the process back to a previously executed activity and restart the process from that previous activity. This process of returning to a previously executed activity may be referred to as a "loop reset." A loop reset may occur, for example, in a requisition approval process when the process identifies that several invalid entries are contained in the requisition. The invalid entries may include incorrect item numbers, incorrect account codes, or incorrect department information. In this example, the requisition approval process rejects the entire requisition with an instruction to complete another requisition with corrected entries. The process described in this example must be restarted from the beginning.
In other situations, it may be desirable to restart a process from an intermediate location rather than the beginning of the process. For example, in a requisition approval process, the process may return to an intermediate activity (i.e., perform a loop reset) if an incorrect item number was provided. Rather than restarting the entire process, it returns to the intermediate step of identifying an item number and sends a message to the user to enter a corrected item number. Thus, instead of completing a new requisition form, the user merely corrects the single error in the existing form. When performing a loop reset to an intermediate activity, problems arise when one or more activities have already been completed after the activity to which the process is being reset (referred to as the "reset point"). For example, in the requisition approval process discussed above, one or more activities may have been performed after the user entered the original (incorrect) item number. To properly return to the reset point, the activities completed after the reset point must be canceled to "undo" the changes caused by those activities.
Known systems for modeling processes are not capable of performing a loop reset to an intermediate activity within a process. It is therefore desirable to provide a process modeling system that is capable of performing a loop reset operation within a particular process, without requiring cancellation of the entire process.